package com.laiketui.order.api.feign;

import com.laiketui.order.api.dto.MchOrderDTO;
import com.laiketui.order.api.dto.MchPrintTagInfoDTO;
import com.laiketui.order.api.page.MyPage;
import com.laiketui.order.api.params.mch.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

@FeignClient("order")
public interface MchOrderFeign {

    @PostMapping("/order/v2/mch/list")
    MyPage<MchOrderDTO> orderList(@RequestBody MchOrderListParams params);

    @PostMapping("/order/v2/mch/confirm")
    String confirm(@RequestBody MchOrderConfirmParams params);

    @PostMapping("/order/v2/mch/info")
    MchOrderDTO orderInfo(@RequestBody MchOrderInfoParams params);

    @PostMapping("/order/v2/mch/ready")
    String ready(@RequestBody MchOrderDetailReadyParams params);

    @PostMapping("/order/v2/mch/revoke")
    String revoke(@RequestBody MchOrderDetailReadyParams params);

    @PostMapping("/order/v2/mch/printTagInfo")
    MchPrintTagInfoDTO printTagInfo(@RequestBody MchOrderDetailParams params);

    @PostMapping("/order/v2/mch/send")
    String send(@RequestBody MchOrderSendParams params);

    //更新发货单信息
    @PostMapping("/order/v2/mch/sendUpdate")
    String sendUpdate(@RequestBody MchOrderSendParams params);

    //安排发货
    @PostMapping("/order/v2/mch/shipment")
    String shipment(@RequestBody MchOrderInfoParams params);

    //取消安排发货
    @PostMapping("/order/v2/mch/shipmentCancel")
    String shipmentCancel(@RequestBody MchOrderInfoParams params);
}
